Recursive Function Definition for Types with Binders
نویسنده
چکیده
This work describes the proof and uses of a theorem allowing definition of recursive functions over the type of λ-calculus terms, where terms with bound variables are identified up to α-equivalence. The theorem embodies what is effectively a principle of primitive recursion, and the analogues of this theorem for other types with binders are clear. The theorem’s side-conditions require that the putative definition be well-behaved with respect to fresh name generation and name permutation. A number of examples over the type of λ-calculus terms illustrate the use of the new principle.
منابع مشابه
Programming Inductive Proofs - A New Approach Based on Contextual Types
In this paper, we present an overview to programming with proofs in the reasoning framework, Beluga. Beluga supports the specification of formal systems given by axioms and inference rules within the logical framework LF. It also supports implementing proofs about formal systems as dependently typed recursive functions. What distinguishes Beluga from other frameworks is that it not only represe...
متن کاملResolving Inductive Definitions with Binders in Higher-Order Typed Functional Programming
This paper studies inductive definitions involving binders, in which aliasing between free and bound names is permitted. Such aliasing occurs in informal specifications of operational semantics, but is excluded by the common representation of binding as meta-level λabstraction. Drawing upon ideas from functional logic programming, weion. Drawing upon ideas from functional logic programming, we ...
متن کاملType Inference for Bimorphic Recursion
This paper proposes bimorphic recursion, which is restricted polymorphic recursion such that every recursive call in the body of a function definition has the same type. Bimorphic recursion allows us to assign two different types to a recursively defined function: one is for its recursive calls and the other is for its calls outside its definition. Bimorphic recursion in this paper can be neste...
متن کاملAutosubst: Automation for de Bruijn Substitutions
Formalizing syntactic theories with variable binders is not easy. We present Autosubst [1], a library for the Coq proof assistant to automate this process. Given an inductive definition of syntactic objects in de Bruijn [7] representation augmented with binding annotations, Autosubst synthesizes the substitution operations and automatically proves the basic lemmas about substitutions. Our core ...
متن کاملWander types : A formalization of coinduction - recursion ∗
Wander types are a coinductive version of inductive-recursive definitions. They are defined by simultaneously specifying the constructors of the type and a function on the type itself. The types of the constructors can refer to the function component and the function itself is given by pattern matching on the constructors. Wander types are different from inductive-recursive types in two ways: t...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2004